﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;

namespace Controllers
{
    public class TipoViajeController
    {
        public static int ObtenerCantidad(string where)
        {
            var sql = "Select count(*) as Cantidad From Superacidos.Tipo_Viaje";

            if (!string.IsNullOrEmpty(where))
            {
                sql += " WHERE " + where;
            }
            var cantidad = 0;
            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                reader.Read();
                if (reader["Cantidad"] != DBNull.Value)
                    cantidad = (int)reader["Cantidad"];

            }

            return cantidad;
        }

        public static TipoViaje ObtenerObjeto(OleDbDataReader reader)
        {
            var TipoViaje = new TipoViaje();

            if (reader["TiVi_Nombre"] != DBNull.Value)
                TipoViaje.Tivi_Nombre = (string)reader["Tivi_Nombre"];
            if (reader["Tivi_Id"] != DBNull.Value)
                TipoViaje.TiVi_Id = (int)reader["Tivi_Id"];

            return TipoViaje;
        }

        public static List<TipoViaje> ObtenerTodos(string where, int pagina, int cantidadRegistros)
        {
            var list = new List<TipoViaje>();

            var sql = "Select TOP " + cantidadRegistros + " * From Superacidos.Tipo_Viaje";

            if (pagina > 1)
            {
                int limiteAnterior = (pagina - 1) * cantidadRegistros;


                var filtrospaginador = !string.IsNullOrEmpty(where)
                                       ? " Tivi_Id NOT IN " + "(Select TOP " + limiteAnterior +
                                         " Tivi_Id from Superacidos.Rol WHERE " + where +
                                         " ORDER BY Tivi_Id) "
                                       : " Tivi_Id NOT IN " + "(Select TOP " + limiteAnterior +
                                         " Tivi_Id from Superacidos.Rol ORDER BY Tivi_Id) ";

                if (!string.IsNullOrEmpty(where))
                {
                    where += " AND ";
                }
                where += filtrospaginador;
            }


            if (!string.IsNullOrEmpty(where))
            {
                sql += " WHERE " + where;
            }

            var reader = ConexionBaseDeDatos.GetData(sql, CommandType.Text);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    list.Add(ObtenerObjeto(reader));
                }
            }

            return list;
        }

    }
}
